Skip to content

[10.10.5] 배포 #404

Merged
HeeMang-Lee merged 221 commits intomainfrom
dev
Aug 12, 2025
Merged

[10.10.5] 배포 #404
HeeMang-Lee merged 221 commits intomainfrom
dev

Conversation

@HeeMang-Lee
Copy link
Copy Markdown
Member

@HeeMang-Lee HeeMang-Lee commented Aug 12, 2025

🔎 작업 내용

-- 유지 관리(Chores)
런타임을 Node.js 22로 업데이트했습니다.
Brave 검색 MCP 서버를 공식 패키지로 교체하고 실행 방식을 스크립트로 표준화했습니다.
server-brave-search 명령어를 STDIO 전송 방식으로 실행하도록 보장하고, 가용성/도움말 확인을 추가했습니다.
불필요한 패키지 정리 절차를 조정해 빌드 정리를 유지했습니다.
문서화
설치 및 실행 방식 관련 주석을 최신 권장 사항에 맞게 업데이트했습니다.


Summary by CodeRabbit

  • New Features
    • 컨테이너가 기본적으로 8080 포트에서 서비스되며, 시작 시 애플리케이션이 자동 실행되도록 설정했습니다.
    • Brave Search MCP 서버 제공 방식을 개선해 실행 일관성과 사용성을 높였습니다.
  • Chores
    • 런타임 Node.js를 최신 버전으로 상향하고 패키지 구성을 정리해 보안과 유지보수를 개선했습니다.
    • 불필요한 캐시/의존성 정리로 이미지 경량화를 진행했습니다.
  • Refactor
    • 시작 및 동작 확인 절차를 단순화해 안정성과 가시성을 향상했습니다.

Ksr-ccb and others added 30 commits May 28, 2025 11:50
Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* chore: 도커 설정파일에 레디스 추가

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Baek jonghyun <69610809+jong-0126@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* chore: 도커 설정파일에 레디스 추가

* feat: Jwt 토큰 로그인과 Oauth 기본설정

* fix: 오류수정

* fix: 생성자 누락값 수정

* fix: 생성자 누락값 수정

* chore: 코드정리

* feat: Oauth 구조 변경중..

* feat: 카카오톡 로그인 + jwt 생성 테스트

* feat: 레디스 설정추가

* chore: 코드 정리

* refactor: OAuth2LoginSuccessHandler 책임분리

* refactor: 필터에서 이중작업 정리

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Baek jonghyun <69610809+jong-0126@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* Revert "Create run-test.yaml"

This reverts commit 3ca826f.

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* CI/CD AWS 연동

* CI/CD branches 범위 수정

---------

Co-authored-by: Ksr-ccb <harang4282@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* Revert "Create run-test.yaml"

This reverts commit 3ca826f.

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* CI/CD AWS 연동

* CI/CD branches 범위 수정

* CI/CD AWS 연동

---------

Co-authored-by: Ksr-ccb <harang4282@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* feat(build.gradle): validation 의존성 추가

* feat : CreateQuizDto 생성

* feat : QuizCategoryRepository 추가

* feat(QuizService) : json 파일 데이터 Quiz 엔티티로 변환 후 저장 기능 추가

* feat : QuizCategory 예외 코드 추가

* feat : uploadQuizJson에 예외 코드 사용' 추가

* feat(QuizController) : quiz 업로드 api 추가

* feat(QuizController) : QuizService의 uploadQuizJson 연동

* Ignore application-local.properties

* feat : 카테고리 타입 생성 api 추가

* refactor(QuizCategoryService) : 메서드 isPresent로 변경

* refactor : 코드래빗 피드백 기반 누락 및 오타 수정

* docker-compose.yml 케시 삭제
* chore: AuthUser, Role 클래스 global.dto 패키지로 이동

* chore: OAuth 패키지 이름 변경

* chore: 주석 및 띄어쓰기 수정

* feat: OAuth2 응답객체 생성 및 수정

* refactor: OAuth2 서비스 로직 리팩토링

* chore: 임시 랜딩페이지 추가

* chore: Role 클래스를 user.entity 패키지로 이동

* refactor: 소셜정보 가져올 때, 예외처리 추가
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* Revert "Create run-test.yaml"

This reverts commit 3ca826f.

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* CI/CD AWS 연동

* CI/CD branches 범위 수정

* CI/CD AWS 연동

* CI/CD AWS 연동

* CI/CD AWS 연동

* 수정

* commit

* 환경변수로 수정

* commit

* deploy.yml 수정

* commit

* deploy 수정

---------

Co-authored-by: Ksr-ccb <harang4282@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* feat: Ai, 서비스 구현 및 Config 추가.

서비스와 빈 생성을 위한 해당 Config 추가.

* feat:AiService

* refactor: Ai, 서비스 및 컨트롤러 코드 수정.

작성했던 API 명세서에 맞추어 기능 및 동작 수정.

* temp : commit for merge

* feat: AI, 테스트코드 구현1.

* refactor: aiService subscriptionId 반영

---------

Co-authored-by: Kimyoonbeom <kimybeom@naver.com>
Co-authored-by: ChoiHyuk <wannabeing@naver.com>
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* chore: 패키지 구조 정리

* feat: 요일->int, int->요일 바꾸기

* feat: 요일->int, int->요일 바꾸기

* chore: docker-compose.yml gitignore 추가

* temp: temp commit for pull

* temp: temp commit for pull

* feat: 구독 엔티티 구조 변경 및 구독 정보 조회

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Baek jonghyun <69610809+jong-0126@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* Revert "Create run-test.yaml"

This reverts commit 3ca826f.

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* CI/CD AWS 연동

* CI/CD branches 범위 수정

* CI/CD AWS 연동

* CI/CD AWS 연동

* CI/CD AWS 연동

* 수정

* commit

* 환경변수로 수정

* commit

* deploy.yml 수정

* commit

* deploy 수정

* commit

* properties 중요정보 환경변수 처리

---------

Co-authored-by: Ksr-ccb <harang4282@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* Revert "Create run-test.yaml"

This reverts commit 3ca826f.

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* CI/CD AWS 연동

* CI/CD branches 범위 수정

* CI/CD AWS 연동

* CI/CD AWS 연동

* CI/CD AWS 연동

* 수정

* commit

* 환경변수로 수정

* commit

* deploy.yml 수정

* commit

* deploy 수정

* commit

* properties 중요정보 환경변수 처리

* deploy 파일 환경 변수 export

---------

Co-authored-by: Ksr-ccb <harang4282@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* chore: 필요없는 어노테이션 삭제

* chore: 공통응답 DTO 수정

- `@RequiredArgsConstructor`는 빌더를 사용한다면 추후 삭제해야 함

* feat: 구독/구독로그 예외처리 추가 및 수정

* feat: 구독기간 enum 클래스 추가

* chore: 구독로그 엔티티에 누락된 컬럼 추가 및 생성자 수정

* refactor: 구독생성자 수정 및 업데이트메서드 추가

* feat: 구독(Subscription) 생성/수정 로직 추가

- SubscriptionLog도 함께 생성되게 추가

* chore: QuizCategory 엔티티에 Getter 추가

* chore: 공통응답 DTO 빌더 삭제

* refactor: 구독로그 테이블명 변경 → 구독내역(SubscriptionHistory)

* refactor: 구독테이블에 N+1(QuizCategory) 문제 수정

문제카테고리(QuizCategory)의 경우, 구독내역이 생성될 때마다 쿼리가 중복되어 발생할 수있다고 판단되어 미리 FetchJoin 설정

* feat: 구독 취소 로직 추가

* refactor: QuizCategory 는 생성하는 것이 아닌 조회하는 방식으로 로직 수정

* chore: 예외처리 간단 수정

* refactor: 이메일 동시성문제를 유니크제약조건과 try-catch로 방지

* chore: 엔티티 수정시간과 시간이 다를 수 있기 때문에 엔티티자체의 수정시간을 사용하도록 변경

* chore: QuizCategoryRepository 알맞는 메서드명으로 변경

* chore: 날짜계산을 Days가 아닌 Month로 변경

`plusMonths()` 함수 사용
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* chore: 패키지 구조 정리

* feat: 요일->int, int->요일 바꾸기

* feat: 요일->int, int->요일 바꾸기

* chore: docker-compose.yml gitignore 추가

* temp: temp commit for pull

* temp: temp commit for pull

* feat: 구독 엔티티 구조 변경 및 구독 정보 조회

* fix: 충돌수정 및 변수형 일치문제 해결

* feat: 구독취소, 회원탈퇴

* chore: 각 api별 권한 추가 (계속 추가되어야함)

* chore: Quiz_category Enum 삭제

* feat: 로그인 회원 마이페이지 확인 (구독로그 포함)

* feat: 구독 비활성화, (임시) 업데이트

* test: 구독 조회 비활성화(로그생성은 아직x) 테스트코드, 로그인 마이페이지 기본기능 테스트 기능

* test: 테스트코드수정

* chore: Quiz_category Enum 삭제 후처리

* chore: Dto 이름 수정 및 파일정리

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Baek jonghyun <69610809+jong-0126@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* feat : 이메일 발송을 위한 SMTP 관련 의존성 추가

* feat : 유연성 및 확장성을 위해 MailConfig 추가

* feat : MimeMessage 기반 Html형식 메일 전송 메서드 추가

* feat(UserService) : 인증 코드 생성

* feat : VerificationCode 서비스, 예외 추가

* feat : 인증코드 검증 성공 시, 인증코드 삭제 기능 추가

* feat : 인증 코드 발급 Controller 클래스 추가

* feat : 인증 코드 발송 기능 추가

* refactor : verify 메서드 반환타입 void로 변경

* feat : 인증 코드 관련 api jwt 검증 제외 설정

* fix : 변경된 에러 코드로 인한 실행 오류 수정

* feat : 피드백 기반 수정

* feat : 인증코드 검증 시도 횟수 추가

* refactor : MailConfig 위치 변경
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* Revert "Create run-test.yaml"

This reverts commit 3ca826f.

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* CI/CD AWS 연동

* CI/CD branches 범위 수정

* CI/CD AWS 연동

* CI/CD AWS 연동

* CI/CD AWS 연동

* 수정

* commit

* 환경변수로 수정

* commit

* deploy.yml 수정

* commit

* deploy 수정

* commit

* properties 중요정보 환경변수 처리

* deploy 파일 환경 변수 export

* 도커 추가하여 배포

* commit

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* commit

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

---------

Co-authored-by: Ksr-ccb <harang4282@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* Revert "Create run-test.yaml"

This reverts commit 3ca826f.

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* CI/CD AWS 연동

* CI/CD branches 범위 수정

* CI/CD AWS 연동

* CI/CD AWS 연동

* CI/CD AWS 연동

* 수정

* commit

* 환경변수로 수정

* commit

* deploy.yml 수정

* commit

* deploy 수정

* commit

* properties 중요정보 환경변수 처리

* deploy 파일 환경 변수 export

* 도커 추가하여 배포

* commit

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* commit

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

---------

Co-authored-by: Ksr-ccb <harang4282@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* Revert "Create run-test.yaml"

This reverts commit 3ca826f.

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* CI/CD AWS 연동

* CI/CD branches 범위 수정

* CI/CD AWS 연동

* CI/CD AWS 연동

* CI/CD AWS 연동

* 수정

* commit

* 환경변수로 수정

* commit

* deploy.yml 수정

* commit

* deploy 수정

* commit

* properties 중요정보 환경변수 처리

* deploy 파일 환경 변수 export

* 도커 추가하여 배포

* commit

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* commit

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

---------

Co-authored-by: Ksr-ccb <harang4282@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* temp : commit for merge

* feat: chroma 연동, RAG 구조 구현

그에 따른 AiService 파일 수정.

* refactor: chroma 연동, RAG 구조 구현 수정.
* build: mysql-connector 버전 업데이트

보안 이슈로 버전 업데이트

* refactor: OAuth2 예외 처리 수정 및 생성

UserException에서 분리했음

* chore: OAuth2 카카오 응답객체 예외처리 수정

* fix: OAuth2 Github 로그인 시, 이메일 누락 방지 로직 추가

accessToken 활용하여 이메일 가져오기

* feat: OAuth2 네이버 로그인 기능 추가

공통 유틸메서드를 제공하기 위해 추상클래스 생성

* chore: OAuth2 추상클래스 적용

* chore: OAuth2 데이터(attributes) 파싱 예외처리 코드 추가

* chore: OAuth2Service를 OAuth2 패키지로 이동 및 패키지명 수정

사용하지 않는 Controller, Service, Repository 삭제

* chore: 간단 로직 수정
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* feat: 문제 추천1 차

* feat: 각 문제별 정답률 계산, 유저 개인의 정답률 계산

* feat: 문제를 내어주는 두가지 방법 *

- getTodayQuiz -> getTodayQuizNew (O)
- getTodayQuizNew -> getTodayQuiz (X)

둘중에 하나씩만 쓰거나  getTodayQuiz -> getTodayQuizNew 해야함

리턴값은 지금 api 형식으로 만든다고 QuizDto 인데,
Quiz로 바꿔서 줄 수 있음

* feat: 문제를 내어주는 두가지 방법 *

- getTodayQuiz -> getTodayQuizNew (O)
- getTodayQuizNew -> getTodayQuiz (X)

둘중에 하나씩만 쓰거나  getTodayQuiz -> getTodayQuizNew 해야함

리턴값은 지금 api 형식으로 만든다고 QuizDto 인데,
Quiz로 바꿔서 줄 수 있음

* test: 문제를 내어주는 두가지 방법 테스트코드

* fix: 포특밧 되돌려줌

* refactor: 정답률 포멧 스케일 통일화

* fix: 오류검증

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Baek jonghyun <69610809+jong-0126@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* chore: 도커 볼륨 구조 변경

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Baek jonghyun <69610809+jong-0126@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* feat : 깃허브 url Parser 추가

* feat : 크롤링 기능 추가

* feat : 프로젝트 내에 저장 기능 추가

* feat : 크롤링한 파일을 프로젝트 폴더 내에 저장하는 기능 추가

* chore : chroma 설정 주석 해제

* feat : 컨트롤러 추가

* feat : VectorStore에 저장 메서드 추가

* refactor : List<Document> 전역변수에서 지역변수로 변경

* feat : CrawlerController 예외 추가
test:
- 정상 체점 후 데이터 저장
- 구독 정보 없는 경우 예외 처리
- 퀴즈 정보 없는 경우 예외 처리
crocusia and others added 24 commits August 11, 2025 14:37
* feat : Long 타입 반환 메서드에 Query 추가

* refactor : 쿼리문 개선
* chore: MCP 도입할 때 필요한 npx 패키지 적용

* chore: 부팅 시 외부 프로세스 미실행 (요청 시 연결)
* refactor: 코드에서 listTools()를 초기화 및 타임아웃 시간 연장

* refactor:기존 MCP서비스 사용 및 앱 부팅시초기화 true설정 자동도구등록 설정
* refactor: 코드에서 listTools()를 초기화 및 타임아웃 시간 연장

* refactor:기존 MCP서비스 사용 및 앱 부팅시초기화 true설정 자동도구등록 설정

* chore: 버젼 명시 해제
* refactor: 코드에서 listTools()를 초기화 및 타임아웃 시간 연장

* refactor:기존 MCP서비스 사용 및 앱 부팅시초기화 true설정 자동도구등록 설정

* chore: 버젼 명시 해제

* chore : 도커파일 테스트 시 빌드되는 거 수정
* chore:고정 변경사항 추적

* refactor : 10차 배포로 회귀
* chore:고정 변경사항 추적

* refactor : 10차 배포로 회귀

* chore/385 10차 배포 서비스로 회귀
* chore: MCP 설정 변경

* chore: MCP Brave Search 서버 경로 변경
* chore: MCP 서버 전역설치 및 심볼릭 링크 생성, 빌드타임 확인 명령어 추가

* chore: 서비스 모듈 빌드 확인 명령어 추가
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Aug 12, 2025

Walkthrough

cs25-service/Dockerfile에서 Node.js를 20.x에서 22.x로 변경하고, Brave Search MCP 서버 설치 방식을 기존 패키지/심볼릭 링크에서 @brave/brave-search-mcp-server + 래퍼 스크립트로 전환했습니다. 설치 검증 로직을 단순화하고, EXPOSE 8080 및 Java JAR ENTRYPOINT를 명시했습니다.

Changes

Cohort / File(s) Change Summary
Dockerfile 런타임 및 MCP 서버 설정
cs25-service/Dockerfile
- Node.js: setup_20.x → setup_22.x
- MCP 서버: @modelcontextprotocol/server-brave-search 제거, @brave/brave-search-mcp-server 글로벌 설치로 대체
- 글로벌 설치 경로 동적 해석 후 /usr/local/bin/server-brave-search 래퍼 스크립트 생성(노드로 dist/index.js 실행, --transport stdio)
- 검증: which/--help 출력으로 단순화, 오류 시 실패 유지
- 클린업: npm cache/apt autoremove/clean 유지, gnupg purge 제거
- 빌드 아티팩트: 빌더에서 jar 복사 유지
- 런타임: EXPOSE 8080, ENTRYPOINT ["java","-jar","/apps/app.jar"] 추가

Sequence Diagram(s)

sequenceDiagram
  participant Dev as Developer
  participant D as Docker
  participant B as Builder Stage
  participant R as Runtime Stage
  participant App as Java App

  Dev->>D: docker build
  D->>B: Install deps, build JAR
  B-->>R: Copy app.jar
  D->>R: Install Node 22, npm global @brave/brave-search-mcp-server
  R->>R: Create wrapper /usr/local/bin/server-brave-search
  R->>R: Verify which + --help

  Dev->>D: docker run
  D->>R: Start container
  R->>App: ENTRYPOINT java -jar /apps/app.jar
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

Suggested reviewers

  • wannabeing
  • jong-0126
  • crocusia
  • Kimyoonbeom

Poem

(\/)
( •
•) 토끼의 일기: 도커가 새 옷 입었지!
/ >🍃 Node는 스물둘, Brave는 래퍼로 춤추네.
포트는 8080, 자바 심장 쿵쾅—
server-brave-search, 길도 잘 냈다네.
오늘의 빌드, 발끝에서 하옵니다.

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch dev

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (5)
cs25-service/Dockerfile (5)

27-29: bash 설치 불필요 — 의존성 최소화로 이미지 슬림화 제안

래퍼 스크립트가 bash에 의존하지 않도록 하면 bash 설치를 생략해 이미지 크기를 줄일 수 있습니다.

아래처럼 bash 제거를 권장합니다.

- && apt-get install -y --no-install-recommends curl ca-certificates gnupg bash \
+ && apt-get install -y --no-install-recommends curl ca-certificates gnupg \

28-29: NodeSource 파이프 설치 스크립트 사용 — 보안/재현성 검토 권장

curl | bash 방식과 최신 nodejs 패키지 설치는 재현성에 취약합니다(빌드 시점마다 버전이 달라질 수 있음). 배포 안정성을 위해 버전 핀(PIN) 또는 서명 검증을 고려해주세요.

  • apt로 nodejs 버전을 핀(예: nodejs=22.x.y-*)하고 apt-mark hold 적용
  • 또는 공식 tarball + 체크섬 검증으로 설치(더 엄격한 보안 요구 시)
  • RUN 스텝 시작에 set -eux 추가해 조기 실패 유도

31-33: @brave/brave-search-mcp-server 전역 설치 버전 핀 필요

전역 설치가 latest로 고정되지 않아 재현성이 떨어집니다. 특정 버전으로 핀하고 주기적으로 갱신하는 편이 안전합니다.

예시(빌드 ARG로 버전 관리):

- && npm install -g @brave/brave-search-mcp-server \
+ && npm install -g @brave/brave-search-mcp-server@${BRAVE_MCP_VERSION} \

파일 바깥 변경(참고):

ARG BRAVE_MCP_VERSION=1.0.0

최신 안정 버전 확인이 필요하면 알려주세요. 조회 스크립트/웹검색으로 확인해 드리겠습니다.


43-45: 헬스체크 명령 개선: --help 대신 --version 사용

래퍼가 항상 --transport stdio를 주입하므로 일부 CLI가 도움말 파싱 실패 시 비정상 종료할 수 있습니다. 설치 검증은 --version이 더 안전합니다.

- && echo "=== server-brave-search --help ===" && server-brave-search --help || (echo "[ERROR] server-brave-search 실행 실패" && exit 1) \
+ && echo "=== server-brave-search --version ===" && server-brave-search --version >/dev/null || (echo "[ERROR] server-brave-search 실행 실패" && exit 1) \

47-50: 정리 단계 보완: 불필요 캐시/패키지 추가 제거로 이미지 축소

이미지 크기 축소를 위해 npm/apt 캐시 외에도 다음 제거를 추천합니다.

  • gnupg는 설치/키 추가 이후 상시 필요하지 않으면 purge
  • root npm 캐시 디렉토리 제거
  && npm cache clean --force \
- && apt-get autoremove -y --purge \
+ && apt-get autoremove -y --purge \
+ && apt-get purge -y gnupg \
  && apt-get clean \
+ && rm -rf /root/.npm /tmp/* \
  && rm -rf /var/lib/apt/lists/*
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9ebb3cc and 8531558.

📒 Files selected for processing (1)
  • cs25-service/Dockerfile (2 hunks)
🔇 Additional comments (1)
cs25-service/Dockerfile (1)

56-60: 런타임 포트/엔트리포인트 명시 — LGTM

EXPOSE 8080 및 Java 엔트리포인트 명시는 명확하고 일관적입니다.

Comment on lines 35 to 41
&& NPM_PREFIX="$(npm prefix -g)" \
&& SRC_BIN="${NPM_PREFIX}/bin/server-brave-search" \
&& SRCDIR="${NPM_PREFIX}/lib/node_modules/@brave/brave-search-mcp-server" \
\
# 3) 심볼릭 링크 생성 (/usr/local/bin 에 고정 경로 제공)
&& ln -sf "${SRC_BIN}" /usr/local/bin/server-brave-search \
# 실행 래퍼 스크립트 생성: server-brave-search (STDIO 고정)
&& printf '#!/usr/bin/env bash\nexec node "%s/dist/index.js" --transport stdio "$@"\n' "$SRCDIR" > /usr/local/bin/server-brave-search \
&& chmod +x /usr/local/bin/server-brave-search \
\
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

래퍼가 dist/index.js에 직접 의존 — 패키지 bin 엔트리 사용으로 결합도 낮추기

패키지 내부 레이아웃(dist/index.js)이 변경되면 즉시 깨집니다. npm이 제공하는 bin 엔트리(글로벌 .bin 또는 prefix/bin 경로)를 사용하면 내구성이 훨씬 좋아집니다. 또한 sh로 충분하므로 bash 의존 제거 가능.

아래처럼 bin 경로를 사용하고 쉘을 sh로 바꾸는 걸 권장합니다.

  # 전역 모듈 경로 계산
  && NPM_PREFIX="$(npm prefix -g)" \
- && SRCDIR="${NPM_PREFIX}/lib/node_modules/@brave/brave-search-mcp-server" \
+ && SRCDIR="${NPM_PREFIX}/lib/node_modules/@brave/brave-search-mcp-server" \
+ && BIN_DIR="${NPM_PREFIX}/bin" \
  \
  # 실행 래퍼 스크립트 생성: server-brave-search (STDIO 고정)
- && printf '#!/usr/bin/env bash\nexec node "%s/dist/index.js" --transport stdio "$@"\n' "$SRCDIR" > /usr/local/bin/server-brave-search \
+ && printf '#!/usr/bin/env sh\nexec "%s/server-brave-search" --transport stdio "$@"\n' "$BIN_DIR" > /usr/local/bin/server-brave-search \
  && chmod +x /usr/local/bin/server-brave-search \

이렇게 하면 패키지의 공식 bin 엔트리를 통해 실행하므로 내부 파일 구조 변경에도 안전합니다. 동시에 bash 설치를 제거할 수 있습니다(위 코멘트 참조).

🤖 Prompt for AI Agents
In cs25-service/Dockerfile around lines 35 to 41, the wrapper script hard-codes
dist/index.js and depends on bash; change it to use the package's published bin
entry from the global prefix bin directory (e.g. "$(npm prefix
-g)/bin/server-brave-search" or "$(npm bin -g)/server-brave-search") so the
wrapper invokes the package's official executable instead of an internal path,
and make the script use /bin/sh in the shebang to remove the bash dependency;
keep creating the wrapper and chmod +x but point to the bin path and use sh.

@HeeMang-Lee HeeMang-Lee merged commit ee204e2 into main Aug 12, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants